﻿using System.Collections.Generic;
using System.ComponentModel;

namespace Columbus
{
    public interface IApplicationSettings : IEditableObject, IEnumerable<KeyValuePair<string, object>>
    {
        int Count { get; }
        void Add(string key, object objectToSave);
        bool Contains(string key);
        object this[string key] { get; set; }
        bool TryGetValue(string key, out object value);
        bool Remove(string key);
        void Clear();

        bool IsEditing { get; }

        ICollection<string> Keys { get; }
        ICollection<object> Values { get; }
    }
}
